AWeakest Precondition Semantics for OO Languages: An OO-Separation Logic Approach
نویسنده
چکیده
In recent years, many researchers in the programming language and formal methods communities have been investigating weakest precondition (WP) semantics for object-oriented (OO) programs. Based on a modified version of Separation Logic, OO Separation Logic, we develop in this article a WP semantics for an OO language with most important object-oriented features including subtypes, visibility, inheritance, dynamic binding and reference types. Giving a clear comparison to existing work, we conclude that the WP semantics defined here captures the essentials of object-orientation. Further, in the WP semantic model, we define program transformation in terms of refinement. With some case studies, we show that, supported by the semantics defined, it is easier to model many practical program transformations in a reasonable way. keywords: Object Orientation, Weakest Precondition, Separation Logic, Semantics, Refinement
منابع مشابه
Weakest Precondition Semantics for OO Programs: A Separation Logic Approach
For the object oriented paradigm, providing a relatively rich model language equipped with formal semantics for practical reasoning is an important and long-standing open problem. In this work, μJava, a sufficient large subset of sequential Java is defined. An OO Separation Logic with pure reference semantic model is developed. Facilitated by this logic, the Weakest Precondition (WP) semantics ...
متن کاملA Separation Logic for OO Programs
We present a general storage model that reflects features of object oriented (OO) languages with pure reference semantics. Based on this model, we develop an OO Separation Logic (OOSL) to specify and verify OO programs. Many inference rules in the Separation Logic still hold in OOSL. Additionally, OOSL has certain properties important to OO reasoning. We introduce HoareTriple for a small OO lan...
متن کاملModeling Object Oriented Systems via Controlled English Verbalization of Description Logic
The need for formal methods for Object Oriented (OO) systems resulted in methods like UML and Lepus3 that are de-facto graphical languages equipped with formal tools that are able to handle the design of OO systems. However, they lack precise semantics which might lead to problems, such as inconsistencies or redundancies. On the other hand, to our knowledge, there is no approach that allows one...
متن کاملDefining the Semantics of UML Class and Sequence Diagrams for Ensuring the Consistency and Executability of OO Software Specification
In order to ensure the correctness of OO Software Specification when using UML, the semantics of UML diagrams must be rigorously defined. To be rigorous, one typically resorts to formal languages for specifying UML diagrams. However, formal languages are usually heavy to learn/use and formally defined semantics of diagrams usually does not show how it is connected to the semantics of programs. ...
متن کاملclass STACK ( T ) is { { Implementation of STACK
Embedded speciications in object-oriented (OO) languages such as Eiiel and Sather are based on a rigorous approach towards validation, compatibility and reusability of sequential programs. The underlying method of \design-by-contract" is based on Hoare logic for which concurrency extensions exist. However concurrent OO languages are still in their infancy. They have inherently imperative facets...
متن کامل